home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Sample Code / Music Architecture / Mixed Bag / •QTMusic Sample Sequencer / SequencerTest.h < prev   
Encoding:
C/C++ Source or Header  |  1994-04-06  |  2.2 KB  |  135 lines  |  [TEXT/KAHL]

  1. /*
  2.  * file: SequencerTest.h
  3.  *
  4.  * started 12 January 1992 16:45
  5.  * david van brink
  6.  *
  7.  * A starting point for BigEasy programs
  8.  *
  9.  */
  10.  
  11.  #ifndef _SequencerTest_
  12.  #define _SequencerTest_
  13.  
  14. /*--------------------------
  15.     Inclusions
  16. --------------------------*/
  17.  
  18. #include <Files.h>
  19. #include <Windows.h>
  20.  
  21. #include <QuickTimeComponents.h>
  22.  
  23.  
  24.  
  25. /*--------------------------
  26.     Structures
  27. --------------------------*/
  28.  
  29.  
  30.  
  31.  
  32. #define kNoteRangeLow 36
  33. #define kNoteRangeHigh 72
  34. #define kScoreLength 64
  35. #define kScoreParts 4
  36.  
  37. #define kPipSize 4                /* Pixels for screen display */
  38.  
  39.  
  40. #define kScoreLengthLongs ((kScoreLength)+31/32)
  41. #define kScoreHeight (kNoteRangeHigh - kNoteRangeLow + 1)
  42.  
  43.  
  44. typedef struct
  45.     {
  46.     ToneDescription tone;
  47.     char junk[28];                /* padding, since tone def changed */
  48.     long score[kScoreHeight][kScoreLengthLongs];
  49.     } ScorePart;
  50.  
  51.  
  52. #define kDocVersion 1
  53. typedef struct
  54.     {
  55.     ScorePart score[kScoreParts];
  56.     } TPartialSaveRecord;
  57.  
  58.  
  59. typedef struct
  60.     {
  61.     Boolean used;
  62.  
  63.     Boolean everSaved;
  64.     Boolean changed;
  65.     Boolean littleChanged;        /* Save available, but no "Save Discard?" on close */
  66.  
  67.     FSSpec docSpec;
  68.     TPartialSaveRecord sr;
  69.  
  70.     NoteChannel noteChannel[kScoreParts];
  71.     TunePlayer tp;
  72.  
  73.     Boolean validQTScore;
  74.     Handle qtScore;
  75.     Handle th;
  76.     long position;
  77.  
  78.     WindowPtr w;
  79.     } TDoc;
  80.  
  81. typedef struct
  82.     {
  83.     long docVersion;            /* quick check that we can really open the file */
  84.     Rect windowRect;
  85.     TPartialSaveRecord sr;
  86.     } TSaveRecord;
  87.  
  88.  
  89. typedef struct
  90.     {
  91.     Rect scoreRect[kScoreParts];
  92.     Rect instrumentNameRect[kScoreParts];
  93.     Rect timeRect;
  94.     short basicDocWidth;
  95.     short basicDocHeight;
  96.     ComponentInstance na;        /* Note Allocator */
  97.     } Globals;
  98.  
  99.  
  100.  
  101.  
  102. /*--------------------------
  103.     Variables
  104. --------------------------*/
  105.  
  106. #ifdef globals
  107.     #define VAR
  108. #else
  109.     #define VAR extern
  110. #endif
  111.  
  112. #define kFirstDocWindow 1
  113. #define kDocMax 5
  114. VAR TDoc *gDoc;
  115. VAR short gDocCount;
  116. VAR Globals g;
  117.  
  118.  
  119. #undef VAR
  120.  
  121.  
  122. /*--------------------------
  123.     Prototypes
  124. --------------------------*/
  125.  
  126. void NewDocFromSaveRecord(short docNumber,TSaveRecord *sr);
  127. void FixUpMenus(TDoc *d);
  128. Boolean GetPipBit(ScorePart *sp,short pipX, short pipY);
  129. void UnrollDoc(TDoc *d);
  130. void DoTheHeader(TDoc *d);
  131. Handle BuildMusicHeader(TDoc *d);
  132. void ShowError(long error);
  133.  
  134. #endif _SequencerTest_
  135.